package com.octopus.core.limiter;

import com.octopus.core.OctopusListener;
import com.octopus.core.Request;

/**
 * 速率限制计划安排管理
 *
 * <p>考虑到页面的爬取任务目标网站不止一个，每个目标网站的速率限制可能不一样。 针对不同的目标网站需要采取不同的速率限制。
 *
 * @author shoulai.yang@gmail.com
 * @date 2019/07/31
 */
public interface RateLimitPlanner extends OctopusListener {

  /**
   * 根据不同的爬取任务获得对应的速率限制
   *
   * @param request 任务信息
   * @return 速率限制
   */
  RateLimiter getRateLimiter(Request request);
}
